#ifndef _MAIN_PAGE_H_
#define _MAIN_PAGE_H_

#include "lvgl/lvgl.h"

#include "common.h"
#include "exitInfo.h"
#include "setting.h"

#define RM_ARRAY_LEN(x) sizeof(x)/sizeof(x[0])

// 页面名称
#define MAIN_PAGE_NAME      "main_page"

// 单页面初始化函数指针
typedef uint8_t (*Page_init) (lv_obj_t *, uint8_t);

// 页面结构体
typedef struct {
    const char *name;    // 页面名称
    uint8_t page_index;  // 页面标号 - 最高为判断该页面是否已初始化
    lv_obj_t *Page;      // 页面
    lv_obj_t *label;     // 页面标签
    Page_init page_init; // 页面初始化接口
} RM_Page_t;

// 状态栏结构体
typedef struct{
    lv_obj_t *top_bar;  // 状态栏
    lv_obj_t *btm_bar;  // 状态栏
    lv_obj_t *time;     // 时间信息
    lv_obj_t *title;    // 标题信息
    lv_obj_t *version;  // 版本信息
    lv_obj_t *ip;       // 版本信息
    lv_obj_t *status;   // 状态信息
    lv_obj_t *network_status;// 网络连接状态
    lv_timer_t *timer;  // 时间刷新定时器
    uint16_t bar_h;     // 状态栏高度
}StatusBar_t;

extern StatusBar_t StatusBar;
// 字体
extern lv_font_t *ft_small;
extern lv_font_t *ft_medium;
extern lv_font_t *ft_large;

// 样式
extern lv_style_t def_style;
extern lv_style_t parent_style;
extern lv_style_t opa_style;

extern lv_obj_t * kb;
extern lv_obj_t * kb_num;
// 页面初始化接口
lv_obj_t *UI_Init(void);

#endif